package com.bbva.gptf.back.transformador;

import java.util.List;

import org.springframework.core.convert.converter.Converter;

import com.bbva.gptf.dto.bean.InstrumentoType;

/**
 * @author Javier Estrella
 * @version 1.0
 * @created 06-mar-2013 17:00:22
 */
public class InstrumentoTypeToArrayTransformador implements Converter<List<InstrumentoType>, Object[][]> {
	private final static int CDCONTRATO = 0;
	private final static int CDCLASIFICACION = 1;
	private final static int CLASIFICACION = 2;
	private final static int TIPOCONTRATO = 3;
	private final static int CDVALORBMV = 4;
	private final static int EMISORA = 5;
	private final static int SERIE = 6;
	private final static int CATITULOS = 7;
	private final static int CAPRECIO = 8;
	private final static int CAMONTO = 9;
	private final static int CALIQUIDEZ = 10;
	private final static int CAPCINTEGRACION = 11;
	private final static int CADELTAINSTRUMENTO = 12;
	private final static int CACONTRIBUCIONDELTA = 13;
	private final static int CATASA = 14;
	private final static int CAVALUACIONCARTERA = 15;
	private final static int CABENCHPCINTEGRACION = 16;
	private final static int CABENCHCONTRIBUCIONDELTA = 17;
	private final static int CADIFERENCIAPCINTEGRACION = 18;
	private final static int CASUBOSOBREDELTAS = 19;
	private final static int CFTITULOS = 20;
	private final static int CFPRECIO = 21;
	private final static int CFMONTO = 22;
	private final static int CFLIQUIDEZ = 23;
	private final static int CFPCINTEGRACION = 24;
	private final static int CFDELTAINSTRUMENTO = 25;
	private final static int CFCONTRIBUCIONDELTA = 26;
	private final static int CFTASA = 27;
	private final static int CFVALUACIONCARTERA = 28;
	private final static int CFBENCHPCINTEGRACION = 29;
	private final static int CFBENCHCONTRIBUCIONDELTA = 30;
	private final static int CFDIFERENCIAPCINTEGRACION = 31;
	private final static int CFSUBOSOBREDELTAS = 32;
	private final static int MONTOOPERAR = 33;
	private final static int PCINTEGRACIONOBJETIVO = 34;
	private final static int PCDIFINTEGRACIONOBJETIVO = 35;
	private final static int VALORNOMINAL = 36;
	private final static int TIPONOMINAL = 37;
	private final static int IMPACTOMONTO = 38;
	private final static int IMPACTOTITULOS = 39;
	private final static int IMPACTOMONTOFIDEICOMISOS = 40;
	private final static int IMPACTOMONTOPATRIMONIAL = 41;
	private final static int IMPACTOMONTOTOTAL = 42;
	private final static int TIPONIVEL = 43;
	private final static int TIPOOPERACION = 44;
	private final static int EFECTIVOHOY = 45;
	private final static int EFECTIVO24 = 46;
	private final static int EFECTIVO48 = 47;
	private final static int EFECTIVO72 = 48;
	private final static int EFECTIVO96 = 49;
	private final static int CALCULAR = 50;
	private final static int NU_POSICION = 51;
	private final static int NU_SECUENCIA = 52;
	
	/**
	 * Devuelve un objeto InstrumentosSimulacion , a partir, de un  intrumento type
	 * 
	 * @param type
	 */
	@Override
	public Object[][] convert(List<InstrumentoType> types){
		int index = 0;
		Object[][] objetos = new Object[types.size()][53];
		for(InstrumentoType type : types){
			objetos[index][CDCONTRATO] = type.getCdContrato();
			objetos[index][CDCLASIFICACION] = type.getCdClasificacion();
			objetos[index][CLASIFICACION] = type.getClasificacion();
			objetos[index][TIPOCONTRATO] = type.getTipoContrato();
			objetos[index][CDVALORBMV] = type.getCdValorBmv();
			objetos[index][EMISORA] = type.getEmisora();
			objetos[index][SERIE] = type.getSerie();
			objetos[index][CATITULOS] = type.getCaTitulos();
			objetos[index][CAPRECIO] = type.getCaPrecio();
			objetos[index][CAMONTO] = type.getCaMonto();
			objetos[index][CALIQUIDEZ] = type.getCaLiquidez();
			objetos[index][CAPCINTEGRACION] = type.getCaPcIntegracion();
			objetos[index][CADELTAINSTRUMENTO] = type.getCaDeltaInstrumento();
			objetos[index][CACONTRIBUCIONDELTA] = type.getCaContribucionDelta();
			objetos[index][CATASA] = type.getCaTasa();
			objetos[index][CAVALUACIONCARTERA] = type.getCaValuacionCartera();
			objetos[index][CABENCHPCINTEGRACION] = type.getCaBenchPcIntegracion();
			objetos[index][CABENCHCONTRIBUCIONDELTA] = type.getCaBenchContribucionDelta();
			objetos[index][CADIFERENCIAPCINTEGRACION] = type.getCaDiferenciaPcIntegracion();
			objetos[index][CASUBOSOBREDELTAS] = type.getCaSubOSobreDeltas();
			objetos[index][CFTITULOS] = type.getCfTitulos();
			objetos[index][CFPRECIO] = type.getCfPrecio();
			objetos[index][CFMONTO] = type.getCfMonto();
			objetos[index][CFLIQUIDEZ] = type.getCfLiquidez();
			objetos[index][CFPCINTEGRACION] = type.getCfPcIntegracion();
			objetos[index][CFDELTAINSTRUMENTO] = type.getCfDeltaInstrumento();
			objetos[index][CFCONTRIBUCIONDELTA] = type.getCfContribucionDelta();
			objetos[index][CFTASA] = type.getCfTasa();
			objetos[index][CFVALUACIONCARTERA] = type.getCfValuacionCartera();
			objetos[index][CFBENCHPCINTEGRACION] = type.getCfBenchPcIntegracion();
			objetos[index][CFBENCHCONTRIBUCIONDELTA] = type.getCfBenchContribucionDelta();
			objetos[index][CFDIFERENCIAPCINTEGRACION] = type.getCfDiferenciaPcIntegracion();
			objetos[index][CFSUBOSOBREDELTAS] = type.getCfSubOSobreDeltas();
			objetos[index][MONTOOPERAR] = type.getMontoOperar();
			objetos[index][PCINTEGRACIONOBJETIVO] = type.getPcIntegracionObjetivo();
			objetos[index][PCDIFINTEGRACIONOBJETIVO] = type.getPcDifIntegracionObjetivo();
			objetos[index][VALORNOMINAL] = type.getValorNominal();
			objetos[index][TIPONOMINAL] = type.getTipoNominal();
			objetos[index][IMPACTOMONTO] = type.getImpactoMonto();
			objetos[index][IMPACTOTITULOS] = type.getImpactoTitulos();
			objetos[index][IMPACTOMONTOFIDEICOMISOS] = type.getImpactoMontoFideicomisos();
			objetos[index][IMPACTOMONTOPATRIMONIAL] = type.getImpactoMontoPatrimonial();
			objetos[index][IMPACTOMONTOTOTAL] = type.getImpactoMontoTotal();
			objetos[index][TIPONIVEL] = type.getTipoNivel();
			objetos[index][TIPOOPERACION] = type.getTipoOperacion();
			objetos[index][EFECTIVOHOY] = type.getEfectivoHoy();
			objetos[index][EFECTIVO24] = type.getEfectivo24();
			objetos[index][EFECTIVO48] = type.getEfectivo48();
			objetos[index][EFECTIVO72] = type.getEfectivo72();				
			objetos[index][EFECTIVO96] = type.getEfectivo96();
			objetos[index][CALCULAR] = type.getCalcular();
			objetos[index][NU_POSICION] = type.getId();
			objetos[index][NU_SECUENCIA] = index+1;			
			index++;
		}
		return objetos;
	}
	
}